package top.waterduck.generator.util;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;

/**
 * @author: huayushu luming
 * @date: 2020-10-07 15:26
 * @desc:
 **/
public class FreemarkerUtil {
    static String ftlPath= "generator\\src\\main\\java\\top\\waterduck\\generator\\ftl\\";

   static Template temp;

    public static void initConfig(String ftlName) throws IOException {
        /**
         * 读模板
         */
        Configuration cfg = new Configuration(Configuration.VERSION_2_3_29);
        //读模板所在的路径
        cfg.setDirectoryForTemplateLoading(new File(ftlPath));
        cfg.setObjectWrapper(new DefaultObjectWrapper(Configuration.VERSION_2_3_29));
        //读具体路径下的模板
         temp = cfg.getTemplate(ftlName);
    }

    public static void generator(String fileName, Map<String,Object> map) throws IOException, TemplateException {
        /**
         * 根据模板生成文件
         */
        //根据模板生成什么文件
        FileWriter fw = new FileWriter(fileName);
        BufferedWriter bw = new BufferedWriter(fw);
        temp.process(map, bw);
        bw.flush();
        fw.close();
    }
}
